package com.bckj.fastboot.core.extra.tenant;

import com.baomidou.mybatisplus.extension.plugins.handler.TenantLineHandler;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import net.sf.jsqlparser.expression.Expression;
import net.sf.jsqlparser.expression.LongValue;

/**
 * @author
 * <p>
 * 租户维护处理器
 */
@Slf4j
@RequiredArgsConstructor
public class BaseTenantHandler implements TenantLineHandler {

	private final TenantConfigProperties tenantConfigProperties;

	@Override
	public Expression getTenantId() {
		// 假设有一个租户上下文，能够从中获取当前用户的租户
		Integer tenantId = TenantContextHolder.getTenantId();
		// 返回租户ID的表达式，LongValue 是 JSQLParser 中表示 bigint 类型的 class
		return new LongValue(tenantId);
	}

	@Override
	public boolean ignoreTable(String tableName) {
		return !tenantConfigProperties.getTables().contains(tableName);
	}
}
